/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：EditorObjectSelectionChangeListener.js<br>
 * 日期：2016年8月19日<br>
 * 作者: 王志远<br>
 * 功能：编辑器对象切换事件侦听器<br>
 *
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window, "Rainier.UI.V2");

/**
 * 类型名称：Rainier.UI.V2.EditorObjectSelectionChangeListener<br>
 * 类型功能：编辑器对象切换事件侦听器<br>
 * 接口函数：
 * （1）接收对象选择变化事件
 * Rainier.UI.V2.EditorObjectSelectionChangeListener.onSelectionChanged
 */
Rainier.UI.V2.EditorObjectSelectionChangeListener = Rainier.UI.V2.SelectionChangeListener.extend({
  NAME: "Rainier.UI.V2.EditorObjectSelectionChangeListener",

  /**
   * 函数名称：Rainier.UI.V2.EditorObjectSelectionChangeListener.init<br>
   * 函数功能：构造函数<br>
   * 异常信息：无<br>
   */
  init: function () {
    this._super();
    this.eventSource = "CANVAS_SELECTED_CHANGED";
  },

  /**
   * 函数名称：Rainier.UI.V2.SelectionChangeListener<br>
   * 函数功能：获取侦听器ID号<br>
   * 函数返回：侦听器实例<br>
   * 异常信息：无<br>
   */
  getListenerId: function () {
    return "Rainier.UI.V2.EditorObjectSelectionChangeListener";
  },

  /**
   * 函数名称：Rainier.UI.V2.EditorObjectSelectionChangeListener.onSelectionChanged<br>
   * 函数功能：接收对象选择变化事件<br>
   * 参数输入：sEvent:String 事件字符串<br>
   * 参数输入：objSelected:CompositeObject 选中的对象<br>
   * 函数返回：无<br>
   * 异常信息：无<br>
   */
  onSelectionChanged: function (sEvent, objSelected) {
    if (sEvent !== Rainier.UI.V2.EditorObjectSelectionChangeListener.SELECTION_CHANGE_EVENT) {
      return;
    }

    var app = window.app;
    if (!app) {
      return;
    }

    var context = app.getContext();
    context.activeEditorObj = objSelected;

    if (app) {
      // var propertyComponent = app.getPropertyComponent();
      // var basePropertyViewPage  = propertyComponent.getBasePropertyViewPage();
      // var modelPropertyViewPage      = propertyComponent.getModelPropertyViewPage();
      // if(basePropertyViewPage){
      // 	propertyComponent.clickToShow();
      // 	basePropertyViewPage.refresh(objSelected);
      // }
      // if(modelPropertyViewPage){
      // 	// propertyComponent.clickToShow();
      // 	modelPropertyViewPage.refresh(objSelected);
      // }
    }

    this.updateMenuBtns();
  },

  /**
   * 函数名称：<br>
   * 函数功能：<br>
   * 参数输入：<br>
   * 参数输出：<br>
   * 函数返回：<br>
   * 异常信息：<br>
   */
  updateMenuBtns: function () {
    var ctx = window.AppContext;
    if (!ctx) {
      return;
    }
    ctx.updateMenuBtnsState(this.eventSource);
  },
});

/** 常量定义： 器件库面选择变化事件侦听器*/
Rainier.UI.V2.EditorObjectSelectionChangeListener.SELECTION_CHANGE_EVENT = "editor object selection changed";
